<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>HISQ smearing &mdash; SIMULATeQCD 0.7 documentation</title>
      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
      <link rel="stylesheet" href="../_static/togglebutton.css" type="text/css" />
      <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
        <script src="../_static/togglebutton.js"></script>
        <script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
        <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
        <script>window.MathJax = {"options": {"processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}</script>
    <script src="../_static/js/theme.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="prev" title="Random Number Generator" href="randomNumbers.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #343131" >
            <a href="../index.html" class="icon icon-home"> SIMULATeQCD
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../01_gettingStarted/gettingStarted.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../02_contributions/contributions.html">Contributions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../03_applications/applications.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../04_codeBase/codeBase.html">Code base</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">Modules</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="inverter.html">Inverter (Conjugate Gradient)</a></li>
<li class="toctree-l2"><a class="reference internal" href="correlator.html">Correlator Class</a></li>
<li class="toctree-l2"><a class="reference internal" href="gaugeUpdates.html">Gauge Updates (HB and OR)</a></li>
<li class="toctree-l2"><a class="reference internal" href="dslash.html">Dslash</a></li>
<li class="toctree-l2"><a class="reference internal" href="integrator.html">Integrator</a></li>
<li class="toctree-l2"><a class="reference internal" href="randomNumbers.html">Random Number Generator</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">HISQ smearing</a></li>
</ul>
</li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu"  style="background: #343131" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">SIMULATeQCD</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
          <li><a href="modules.html">Modules</a> &raquo;</li>
      <li>HISQ smearing</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../_sources/05_modules/gaugeSmearing.md.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section class="tex2jax_ignore mathjax_ignore" id="hisq-smearing">
<h1>HISQ smearing<a class="headerlink" href="#hisq-smearing" title="Permalink to this headline"></a></h1>
<p>Much of the rhmc in SIMULATeQCD follows the MILC code. For a thorough discussion of this
implementation, look <a class="reference external" href="https://journals.aps.org/prd/abstract/10.1103/PhysRevD.82.074501">here</a>.
Here we just list a few important details.</p>
<section id="general-idea-behind-smearing">
<h2>General idea behind smearing<a class="headerlink" href="#general-idea-behind-smearing" title="Permalink to this headline"></a></h2>
<p>Typically the gauge connection between two neighboring sites <span class="math notranslate nohighlight">\(x\)</span> and <span class="math notranslate nohighlight">\(y\)</span>
on the lattice is just a single link <span class="math notranslate nohighlight">\(U(x,y)\)</span>, which is in some sense the
most local connection imaginable. One can also relax this locality, so that
the gauge connection contains information from a larger region around
<span class="math notranslate nohighlight">\(x\)</span> and <span class="math notranslate nohighlight">\(y\)</span>; for example the connection could depend on a general sum,
including many paths connecting <span class="math notranslate nohighlight">\(x\)</span> and <span class="math notranslate nohighlight">\(y\)</span>. Let’s call
this sum <span class="math notranslate nohighlight">\(\Sigma(x,y)\)</span>. Then the gauge connection could be <span class="math notranslate nohighlight">\(V(x,y)\)</span>,
where <span class="math notranslate nohighlight">\(V\)</span> is chosen by extremizing <span class="math notranslate nohighlight">\(\mathrm{tr} V\Sigma^\dagger\)</span>. These gauge
connections are called <a class="reference external" href="https://link.aps.org/doi/10.1103/PhysRevD.55.R1133">fat links</a>.
Fat links modify particle spectra, since they amount to a change of the lattice
propagator.</p>
</section>
<section id="id1">
<h2>HISQ smearing<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h2>
<p>Taste breaking can be thought of through <em>taste exchange</em>, where
one quark changes its taste by exchanging a virtual gluon with momentum
<span class="math notranslate nohighlight">\(p=\pi/a\)</span>; a quark with low enough momentum can thereby be pushed into
another corner of the Brillouin zone. This is an effect of our discretization,
so taste breaking vanishes in the continuum limit. A strategy at finite spacing
to reduce this discretization effect is to
modify gluon spectra to suppress these taste-exchange processes. This is the
idea behind HISQ smearing.</p>
<p>HISQ fermions utilize two levels of ASQTAD-like smearing, with a unitarization between them.
You can find information about ASQTAD <a class="reference external" href="https://link.aps.org/doi/10.1103/PhysRevD.60.054503">here</a>
and <a class="reference external" href="https://link.aps.org/doi/10.1103/PhysRevD.59.074502">here</a>.
The first-level HISQ link treatment is</p>
<p><span class="math notranslate nohighlight">\(  c_1 = 1/8\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_3 = 1/16\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_5 = 1/64\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_7 = 1/384,\)</span></p>
<p>where <span class="math notranslate nohighlight">\(c_1\)</span> is the coefficient for the 1-link, and <span class="math notranslate nohighlight">\(c_3\)</span>, <span class="math notranslate nohighlight">\(c_5\)</span>, and <span class="math notranslate nohighlight">\(c_7\)</span>
are for the 3-link staple, 5-link staple, and 7-link staples, respectively.
The first-level smeared link is then projected
back to U<span class="math notranslate nohighlight">\((3)\)</span> before the application of the second-level smearing.
The second level uses</p>
<p><span class="math notranslate nohighlight">\(  c_1 = 1\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_3 = 1/16\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_5 = 1/64\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_7 = 1/384\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_\text{Lepage} = -1/8\)</span></p>
<p><span class="math notranslate nohighlight">\(  c_\text{Naik} = -1/24+\epsilon/8,\)</span></p>
<p>where <span class="math notranslate nohighlight">\(c_\text{Naik}\)</span> and <span class="math notranslate nohighlight">\(c_\text{Lepage}\)</span> are the coefficients for the
Naik and Lepage terms.</p>
<p>Let’s see how this is carried out in the code. Let the original gaugefields be <span class="math notranslate nohighlight">\(U\)</span>.
For the first level, we smear <span class="math notranslate nohighlight">\(U\)</span> links with various 3-link, 5-link and 7-link paths. MILC calls it <span class="math notranslate nohighlight">\(V\)</span></p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">HisqSmearing</span><span class="o">&lt;</span><span class="n">PREC</span><span class="p">,</span><span class="w"> </span><span class="n">USE_GPU</span><span class="p">,</span><span class="n">HaloDepth</span><span class="o">&gt;</span><span class="w"> </span><span class="n">V</span><span class="p">(</span><span class="n">gauge_in</span><span class="p">,</span><span class="w"> </span><span class="n">gauge_out</span><span class="p">,</span><span class="w"> </span><span class="n">redBase</span><span class="p">);</span><span class="w"></span>
</pre></div>
</div>
<p>To do this use</p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">V</span><span class="p">.</span><span class="n">hisqSmearing</span><span class="p">(</span><span class="n">getLevel1params</span><span class="p">())</span><span class="w"></span>
</pre></div>
</div>
<p>Next we project the level 1 smeared links back to U(3). MILC calls it <span class="math notranslate nohighlight">\(W\)</span></p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">HisqSmearing</span><span class="o">&lt;</span><span class="n">PREC</span><span class="p">,</span><span class="w"> </span><span class="n">USE_GPU</span><span class="p">,</span><span class="n">HaloDepth</span><span class="o">&gt;</span><span class="w"> </span><span class="n">W</span><span class="p">(</span><span class="n">gauge_in</span><span class="p">,</span><span class="w"> </span><span class="n">gauge_out</span><span class="p">,</span><span class="w"> </span><span class="n">redBase</span><span class="p">);</span><span class="w"></span>
</pre></div>
</div>
<p>To do this use</p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">W</span><span class="p">.</span><span class="n">u3Project</span><span class="p">()</span><span class="w"></span>
</pre></div>
</div>
<p>Finally we smear again the <span class="math notranslate nohighlight">\(W\)</span> links with 3-link, 5-link and 7-link paths. MILC calls it <span class="math notranslate nohighlight">\(X\)</span></p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">HisqSmearing</span><span class="o">&lt;</span><span class="n">PREC</span><span class="p">,</span><span class="w"> </span><span class="n">USE_GPU</span><span class="p">,</span><span class="n">HaloDepth</span><span class="o">&gt;</span><span class="w"> </span><span class="n">X</span><span class="p">(</span><span class="n">gauge_in</span><span class="p">,</span><span class="w"> </span><span class="n">gauge_out</span><span class="p">,</span><span class="w"> </span><span class="n">redBase</span><span class="p">);</span><span class="w"></span>
</pre></div>
</div>
<p>To do this use</p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">X</span><span class="p">.</span><span class="n">hisqSmearing</span><span class="p">(</span><span class="n">getLevel2params</span><span class="p">())</span><span class="w"></span>
</pre></div>
</div>
<p>To do the tadpole improvement we use the Naik term in the Dirac operator. For HISQ dslash,
the Naik links are constructed from the unitarized links, i.e. using the <span class="math notranslate nohighlight">\(W\)</span> links.
MILC calls it <span class="math notranslate nohighlight">\(N\)</span>.
To use this we have to call</p>
<div class="highlight-C++ notranslate"><div class="highlight"><pre><span></span><span class="n">HisqSmearing</span><span class="o">&lt;</span><span class="n">PREC</span><span class="p">,</span><span class="w"> </span><span class="n">USE_GPU</span><span class="p">,</span><span class="n">HaloDepth</span><span class="o">&gt;</span><span class="w"> </span><span class="n">N</span><span class="p">(</span><span class="n">gauge_in</span><span class="p">,</span><span class="w"> </span><span class="n">gauge_out</span><span class="p">,</span><span class="w"> </span><span class="n">redBase</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">N</span><span class="p">.</span><span class="n">naikterm</span><span class="p">()</span><span class="w"></span>
</pre></div>
</div>
<p>The smearing classes are implemented in</p>
<blockquote>
<div><p>hisqSmearing.cpp.
How to construct the smeared links are defined in</p>
</div></blockquote>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>main_hisqSmearing.cpp.
</pre></div>
</div>
</section>
</section>


           </div>
          </div>
          <footer>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2021, LatticeQCD.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>